As new and useful application software packages for personal computers are developed, the need arises for an automated or semi-automated process for installing a given application software package onto a plurality of computers. This need arises, for example, in the context of corporate computer networks which may comprise tens, hundreds, or even thousands of client computers. For such corporate computer networks, the purchase and installation of even a single new application software package can become a major task, requiring a large amount of time and effort from the system administrators whose job it is to support the many client computers coupled a corporate computer network.
FIG. 1 shows a typical corporate computer network 100 comprising a network backbone 102, a plurality of local area network servers 104a-c, and a plurality of client computers 106a-l. Corporate computer network 100 further comprises a gateway computer 108 for coupling the corporate computer network 100 to an external network such as the Internet. Corporate computer network 100 further comprises a service computer 112 which, generally speaking, is a computer dedicated at least in part to assisting in servicing the various hardware and software applications being used by corporate computer network 100. Finally, shown in FIG. 1 is a system administrator 114. Generally speaking, the system administrator 114 represents the person or persons responsible for supporting the users of the client computers 106a-l and for servicing the various hardware and software applications being used by corporate computer network 100.
FIG. 2 shows steps taken in the development, distribution, and installation of application software packages according to the prior art. At step 202, an application software package represented by the files NEW.sub.-- APP.EXE and NEW.sub.-- DATA.DAT are developed by an application software manufacturer. At step 204, the application software manufacturer develops a rule-based instruction file SETUP.INS. At step 206, the application software manufacturer releases the application software package by either a physical data delivery mechanism such as a CD-ROM, a magnetic media disk, or a DVD-disk, or alternatively configures the application software package for electronic delivery, e.g., by posting the application software package on an Internet World Wide Web Site or bulletin board. Along with the application software package files NEW.sub.-- APP.EXE and NEW.sub.-- DATA.DAT, the rule-based instruction file SETUP.INS is included, along with a rule-based installation engine denoted by a file SETUP.EXE.
A rule-based installation engine is a standard computer program which is designed to install an application software package from a first medium onto a client computer when executed. Examples of rule-based installation engines include InstallShield.RTM., Wise Installation System, and Microsoft Setup Toolkit. A rule-based installation engine is characterized in that it provides a standard installation environment, e.g. standard configuration options, familiar look-and-feel, etc., while operating according to a set of rules that are expressed in a rule-based instruction file. As an example, InstallShield.RTM. is commonly used for installing many Windows 95.TM.-based application software packages. Installshield.RTM. is provided with a variety of software packages ranging from antivirus application software such as McAfee VirusScan.TM. to natural speech detection programs such as Dragon Systems NaturallySpeaking.TM.. When a user invokes Installshield.RTM. by launching its executable file named SETUP.EXE, a selection from among a standard set of dialog and options boxes appear to the user, according to parameters in a rule-based instruction file SETUP.INS generated by the application software manufacturer. Such familiar dialog and options boxes include, for example, a license dialog box for displaying a license agreement to the user, and a destination files dialog box for requesting a destination directory for installed application software files.
A rule-based instruction file is a computer file that is readable by a rule-based installation engine and that comprises a set of instructions and parameters for use during the installation process. As an example, the InstallShield.RTM. program operates according to a rule-based installation file called SETUP.INS and generally according to files having an INS extension. When the exemplary InstallShield.RTM. system is used as a delivery vehicle by an application software manufacturer, at step 204 the application software manufacturer generates a rule-based instruction file named SETUP.INS. This file provides a set of detailed instructions from the application software manufacturer including specific parameters associated with the application software package and computer operating system. This file also includes defaults, including the location of a desired license agreement file, the default destination directory, the identity of the application software files that require duplication onto the destination client computer, and default parameters for entry into the client computer operating system.
Importantly, at step 204 the application software manufacturer generates the rule-based instruction file named SETUP.INS by first writing a rule-based installation language file which may bear, for example, the name SET.sub.-- UTIL.RUL. This file is created according to a specific set of commands adapted for the specific rule-based installation engine. For the exemplary InstallShield engine, descriptions of the specific language used in the rule-based installation language files *.RUL may be found in documents including "InstallShield 3 User's Guide," InstallShield Corporation, rev. Apr. 29, 1996, which is hereby incorporated by reference into the present disclosure. A proprietary compiler ICOMP.EXE provided to the application software manufacturer by InstallShield is used to compile the rule-based installation language files *.RUL into rule-based instruction files *.INS. Accordingly, the *.INS files are binary files which cannot be read or modified using a standard ASCII editor. The compilation requirement of the rule-based installation engine providers helps to ensure that rule-based installation language files are accurately written by the application software manufacturer prior to release. This is due to the fact that many mistakes in writing the rule-based installation language file would be detected by the compiler, thus preventing the release or erroneous or buggy installation routines. Additionally, speed of execution is increased over a situation where an ASCII or non-compiled rule-based installation language file is used. Finally, security of the product is enhanced with regard to unauthorized access to proprietary information contained therein.
At step 208 of FIG. 2, the system administrator 114 acquires the magnetic disk or other medium containing the application software and installation files. At steps 210-220, using distribution methods known in the art, system administrator 114 distributes the application software and installation files to each of the computers 106a-106l that require the new software installation. In what is perhaps the oldest prior art method, the system administrator physically goes to each computer with the CD-ROM or disk, executes the rule-based installation engine program, i.e. the InstallShield.RTM. SETUP.EXE program, and enters the appropriate responses when prompted. In particular, starting at step 210, the system administrator 114 launches the rule-based installation engine at each client computer COMPUTER(i) at step 212. At steps 214 and 216, the system administrator 114 enters the appropriate information when prompted. At steps 218 and 220, the system administrator 114 continues on to the next computer COMPUTER(i+1), or else the process ends if installation has occurred on all required client computers. In another prior art method similar to that depicted in FIG. 2, the files identified at step 206 are distributed electronically to the client computers 106a-106l, wherein each user individually runs the rule-based installation program.
The above prior art method is disadvantageous in that there are no accommodations for custom parameters that may be desired by the system administrator 114 during the installation process. Rather, the installation will simply contain the default instructions and parameters in SETUP.INS provided with the application software. It would be desirable in many circumstances for custom installation to take place. For example, a custom licensing agreement display may be desired, custom destination directories may be desired, or it may be required that specialized files overwrite the standard application software files during the installation process.
The lack of custom installation parameters and commands during execution of the rule-based installation engine SETUP.EXE is not practically resolvable through modification of SETUP.INS by the system administrator 114. As indicated previously, the SETUP.INS file is very difficult to read or modify in that it is a binary file created by a special compiler that is not provided to the system administrator with the application software package. Further, the rule-based installation language files *.RUL are also generally not provided to the system administrator. Most importantly, however, even if these elements were provided to the system administrator, it would be very difficult for the system administrator to modify the rule-based installation language file directly, as it is written in a highly detailed and specific form. Generally speaking, rule-based instruction files contain code that is unique to each provider of rule-based installation engines, code that is not easily created or even deciphered by the system administrator 114. A major portion of the rule-based installation file, which may exceed 400 KB for many products, is devoted to intricacies of the application software and installation process that is not of concern to the system administrator, and proper entry and exit points would be difficult to discern unless the system administrator were to take the time to become skilled in that language. See generally "InstallShield 3 User's Guide" as referenced above.
While rule-based instruction files are generally very difficult to create from scratch, a limited set of tools are sometimes available to the system administrator to allow generation of custom rule-based instruction files. As an example, using a feature of the InstallShield.RTM. program, the system administrator can "record" a limited set of default installation parameters into a *.SIS file by executing the SETUP command line with the command "SETUP -R". The recorded SIS file can then be invoked on subsequent installations using the command "SETUP -S". However, this prior art method only allows a limited set of options to be adjusted, e.g. the default destination directory, and does not allow for custom operating system commands to be executed at custom times during the installation process. The Installshield.RTM. recording process is described on a publicly available CD-ROM disk entitled VirusScan.TM. version 3.0.0 (3000) in the file .backslash.Win95.backslash.WHATSNEW.TXT, which is hereby incorporated by reference into the present disclosure. Generally speaking, the prior art as outlined above allows only a fixed-format, serially presented, and limited set of installation parameters to be specified by a system administrator for execution along with the provided rule-based instruction language file commands.
It has been found that flexible and customizable installation procedures are especially important when antivirus application software packages are being installed on a plurality of client computers such as those in the corporate computer network 100. Generally, a computer virus is a program that is capable of attaching to other programs or sets of computer instructions, replicating itself, and performing unsolicited or malicious actions on a computer system. Generally, computer viruses are designed to spread by attaching to floppy disks or data transmissions between computer users, and are designed to do damage while remaining undetected. The damage done by computer viruses may range from mild interference with a program, such as the display of an unwanted political message in a dialog box, to the complete destruction of data on a user's hard drive. It is estimated that new viruses are created at a rate of over 100 per month. A variety of antivirus programs have been developed to detect and destroy computer viruses.
It is important to ease the installation and distribution of antivirus applications software packages and to provide a more flexible and yet simple method for installing them onto a plurality of client computers. As an example, it is important in an antivirus installation environment to display timely information to the user regarding computer viruses, information that often becomes available only after the release of the antivirus application software disk. As another example, updated *.DAT files containing newly unleashed virus signatures often need to be installed over the existing *.DAT files which accompany the antivirus application software disk. Information related to antivirus applications is included in on a publicly available CD-ROM disk entitled VirusScan.TM. version 3.0.1. All files contained on the CD-ROM disk VirusScan.TM. version 3.0.1 are hereby incorporated by reference into the present disclosure.
Accordingly, it would be desirable to provide a method and system for allowing a system administrator to install an application software package onto a plurality of client computers using a flexible and customizable installation process.
It would be further desirable to provide a method and system for allowing the system administrator to use a familiar and standardized rule-based installation engine to install an application software package onto a plurality of client computers.
It would be even further desirable to allow for customization of the rule-based installation process without requiring the system administrator to have knowledge of the rule-based installation language being used.